package com.tiancheng.trade.settlement.service.settlement;

import com.baomidou.mybatisplus.extension.service.IService;
import com.tiancheng.trade.commom.core.data.PageInfo;
import com.tiancheng.trade.settlement.bo.SSettleLettersDetailQueryBO;
import com.tiancheng.trade.settlement.model.settlement.SSettleLettersDetail;
import com.tiancheng.trade.settlement.vo.settlement.admin.SSettleLettersDetailQueryVo;
import com.tiancheng.trade.settlement.vo.settlement.admin.SettleLetterAdjustVo;
import com.tiancheng.trade.settlement.vo.settlement.admin.res.SSettleLettersDetailResVO;

import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import java.util.List;

/**
 * @Auther: Likailun
 * @Date: 11:12 2021/5/8
 * @Description: 对账函service
 */
public interface ISSettleLettersDetailService extends IService<SSettleLettersDetail> {

    /**
     * 对账函列表查询
     * @param SSettleLettersDetailQueryVo 查询参数
     * @return
     */
    PageInfo<SSettleLettersDetailResVO> queryLit(SSettleLettersDetailQueryBO queryBO);

    /**
     * 根据主对账编号，删除对账明细
     * @param settleLettersCode
     */
    void deleteBySettleLettersCode(String settleLettersCode);
    /**
     * 根据主对账编号，删除对账明细
     * @param cods
     */
    void deleteBySettleLettersCode(List<String> cods);

    /**
     * 根据主对账编号，查询对账函明细
     * @param code
     */
    List<SSettleLettersDetail> queryByParentSettleLetter(String code);

    /**
     * 手工调整
     * @param settleLetterAdjustVo
     */
    void adjust(SettleLetterAdjustVo settleLetterAdjustVo);

    /**
     * 查询手工调整单
     * @param subSettleLettersCode
     */
    SSettleLettersDetail queryAdjustBySubSettleLettersCode(String subSettleLettersCode);

    /**
     * 导出
     * @param settleLettersDetailQueryVo 查询条件
     * @return
     */
    void export(SSettleLettersDetailQueryVo settleLettersDetailQueryVo, HttpServletRequest request, HttpServletResponse response) throws Exception;

    /**
     * 上传手动调整明细
     * @param detail
     */
    void uploadAdjust(SSettleLettersDetail detail);
}
